package cn.ygh.bbo.system.service;

import cn.ygh.bbo.framerwork.core.BaseService;
import cn.ygh.bbo.framerwork.core.Grid;
import cn.ygh.bbo.system.bean.DataFilter;
import org.springframework.data.domain.Pageable;
import java.io.Serializable;
import java.util.List;

/**
 * 描述：数据过滤  Service
 * @author ygh
 */
public interface DataFilterService extends BaseService {
    /**
     * 保存对象
     * @param dataFilter 对象信息
     * @return
     */
    int save(DataFilter dataFilter);

    /**
     * 更新对象
     * @param dataFilter 对象信息
     * @return
     */
    int update(DataFilter dataFilter);

    /**
     * 批量更新
     * @param dataFilter 对象信息
     * @param ids
     * @return
     */
    int updateBatchByIds(DataFilter dataFilter, Serializable[] ids);

    /**
    * 根据ID删除对象
    * @param id
    * @return
    */
    int deleteById(Serializable id);

    /**
    * 根据ID数组批量删除对象
    * @param ids
    * @return
    */
    int deleteByIds(Serializable[] ids);

    /**
    * 根据ID获取对象
    * @param id
    * @return
    */
    DataFilter getById(Serializable id);

    /**
    * 根据ID数组获取对象列表
    * @param ids
    * @return
    */
    List<DataFilter> listfindByIn(Serializable[] ids);

    /**
    * 根据对象信息获取满足条件的对象列表
    * @param dataFilter 对象信息
    * @param pageable 分页条件为空则不分页
    * @return
    */
    List<DataFilter> listfind(DataFilter dataFilter, Pageable pageable);

    /**
    * 根据对象信息获取满足条件的对象列表和总数
    * @param dataFilter 对象信息
    * @param pageable 分页条件
    * @return
    */
    Grid listGrid(DataFilter dataFilter, Pageable pageable);

    /**
     * 获取角色的相关数据权限
     * @param roleIds
     * @return
     */
    List<DataFilter> listfindByRoleIds(List<Integer> roleIds);

    /**
     * 角色数据权限数量
     * @param roleId
     * @return
     */
    long getCountByRoleId(Integer roleId);
}
